// 定义类，类的属性
// 1
var Book = function(id, name, price) {
  this.id = id;
  this.name = name;
  this.price = price;
}
Book.prototype.display = function() {
  // 展示这本书
}
// Book.prototype = {
//   display: function() {}
// }
// 使用
var book = new Book(10, 'JavaScript 设计模式', 50);
console.log(book.name); // JavaScript 设计模式


// 2 私有/公有属性和方法
var Book = function(id, name, price) {
  // 私有属性
  var num = 1;
  // 私有方法
  function checkId() {}
  // 特权方法
  this.getName = function() {};
  this.getPrice = function() {};
  this.setName = function() {};
  this.setPrice = function() {};
  // 公有属性
  this.id = id;
  // 对象公有方法
  this.copy = function() {};
  // 构造器
  this.setName(name);
  this.setPrice(price);
}
// 类静态公有属性（对象不能访问）
Book.isChinese = true;
// 类静态公有方法（对象不能访问）
Book.resetTime = function() {
  console.log('new Time');
}
Book.prototype = {
  // 公有属性
  isJSBook: false,
  // 公有方法
  display: function() {}
}
// 调用
var b = new Book(11, 'JavaScript 设计模式', 50);
console.log(b.num);       // undefined
console.log(b.isJSBook);  // false
console.log(b.id);        // 11
console.log(b.isChinese);     // undefined
console.log(Book.isChinese);  // true
b.resetTime();            // new Time
